TESTING PLAYBOOK

ABC Partnership Packages Module — Testing Playbook

Master partnership package creation, component configuration, event integration, flex credit application, and comprehensive testing strategy for customizable sponsorship packages

The Business

Partnership Packages enable chapters to create customizable sponsorship offerings that bundle event tickets, marketing benefits, and flexible spending credits. This formalized approach increases partnership value, simplifies benefit management, and provides partners with predictable, trackable benefit lifecycles.
📦 What Are Partnership Packages and Why Does ABC Care

Sponsorship discussions traditionally happen ad-hoc—partners and chapters negotiate individually, benefits are inconsistent, and tracking is manual. This creates operational friction and limits partnership scalability.

Partnership Packages formalize this. Chapter staff bundles fixed benefits (e.g., "Gold Package: 2 VIP tickets to annual conference, logo placement on event marketing, $2,000 in flex credits toward marketing services") into reusable packages. Partners see transparent value. Registrants can apply these benefits during event sign-up. Everything is tracked automatically.

Business value: (1) Revenue predictability—chapters offer consistent, stackable sponsorship tiers; (2) Partner satisfaction—benefits are clear, flexible, and easy to redeem; (3) Operational efficiency—staff no longer manually tracks benefit usage; (4) Event fill rates—partnered registrants can attend at reduced cost, increasing participation; (5) Marketing ROI—partners see exactly which benefits they're using, informing renewal and upsell decisions.

🎯 The Three Package Components

Every partnership package is built from three modular component types, each independently configurable:

Event Tickets

Allocate specific quantities of event tickets (VIP, general admission, table seating) to the package. Tickets can reference existing events or placeholder events awaiting creation. Useful for conference attendance, VIP dinners, training workshops. Restricts public access via "Staff Only" or private availability settings.

Marketing Opportunities

Include branded marketing benefits: logo placement, social media shoutouts, email feature, booth space, custom advertising. Each opportunity is managed separately, with optional cost/value field for flex credit usage. Example: "Logo on Golf Banner" valued at $1,500.

Flex Credits

A dollar-value pool that partners can spend on event tickets or marketing opportunities (if cost/value is defined). Example: $5,000 flex credits allow partner to purchase tickets or marketing services within that budget. Supports partial usage (e.g., use $2,000 of $5,000 credits toward one event, save remainder for later).

🔄 Package Lifecycle: Creation to Redemption

Creation: Chapter staff (L2/L3) creates package in Browse Packages, specifying name, cost, description, components (event tickets, marketing opportunities, flex credits), and optional Benefit Cutoff Date (when all benefits expire).

Assignment: Staff assigns package to a partner account. Partner now owns these benefits and can begin using them.

Redemption: During event registration, partner or chapter staff on their behalf selects which included event tickets to apply. For marketing and flex credits, partner consumes via separate redemption flow (similar to coupon codes). System tracks usage and remaining balance.

Expiration: If Benefit Cutoff Date is set, all unused benefits automatically expire on that date. After expiration, package is read-only; no further redemptions permitted.

QA Focus for The Business Section

Understand that partnership packages are a revenue and engagement tool. They simplify complex sponsorship negotiations, create predictable benefit redemption, and reduce manual tracking overhead. QA should verify that packages are flexible enough to accommodate diverse partnership types (high-value sponsors vs. emerging partners) while maintaining consistent operational behavior.

How It Works

A detailed walkthrough of package creation, component configuration, and benefit redemption across both chapter staff and member portal experiences.
Creating a Partnership Package

Package Metadata: Staff enters Package Name (required), Package Amount/Cost (required currency value), Package Description (optional free-text), Status (Active/Inactive), and optional Benefit Cutoff Date (calendar picker).

Event Tickets Component: Staff clicks "Add Event Tickets" to configure. For each ticket: select an existing event (type-ahead search) and corresponding ticket type/quantity. Alternatively, if event doesn't exist yet, staff can enter event name and description as placeholder, link to actual event later. Tickets default to "Staff Only" or private availability to restrict public access.

Marketing Opportunities Component: Staff clicks "Add Marketing Opportunity" to configure. Specify opportunity name (e.g., "Logo on Golf Banner"), description, and optional Cost/Value field (used for flex credit valuation if partner uses flex credits to pay). Staff can add multiple opportunities; each is independent.

Flex Credits Component: Staff clicks "Add Flex Credits" to set total credit amount (e.g., $5,000). Staff then defines Excluded Events (events where flex credits cannot be applied). Benefits: this is more flexible than selecting included events, and accounts for events not yet created. Flex credits can be applied to both event tickets and marketing opportunities (if cost/value is defined).

Save Package: Click Save. Package is created and appears in Browse Packages list with Status and Benefit Cutoff Date visible.

🔗 Managing Package Components

Edit Event Tickets: Click "Manage Benefits" on package row. In modal, staff can add, edit, or delete event ticket lines. Adding a ticket: select existing event OR enter new event placeholder. Deleting a ticket: confirm action; ticket is removed from package. Existing tickets already redeemed cannot be deleted; staff receives warning.

Edit Marketing Opportunities: Similar to event tickets. Staff can add new opportunity (name, description, cost/value), edit existing opportunity (change name, description, cost value), or delete opportunity (only if no redemptions exist).

Edit Flex Credits: Click modal to adjust total credit amount. Staff can also modify excluded events list. Changes to excluded events apply going forward (past redemptions unaffected).

Assign Package to Account: Click "Assign Package to Account" button on package row. Select partner account (type-ahead or account picker). Confirm assignment. Package is now associated with partner account.

🎫 Registrant Experience: Applying Package Benefits

Event Registration (Included Tickets): During event registration, if registrant is from partner account, registration UI shows available package tickets: "Your partnership includes 2 VIP tickets for this event. Would you like to apply one?" Registrant can click Yes or Save for Later. Applied tickets are deducted from package balance. Remaining tickets available for future events.

Event Registration (Flex Credits): At checkout, system displays flex credit balance: "You have $3,500 in partnership flex credits. Your event cost is $2,000. Apply flex credits?" Registrant can apply full or partial amount. After application, balance updates immediately (e.g., $3,500 → $1,500).

Marketing Opportunity Redemption: Partner portal or separate redemption dashboard displays available marketing opportunities from their packages. Partner selects opportunity (e.g., "Social Media Shoutout, value $500"), applies flex credits if needed, and confirms. System tracks redemption.

Chapter Staff Assistance: Chapter staff can register partners on their behalf and apply package benefits on-the-fly. UI identical to partner self-service experience.

📊 Tracking and Reporting

Package Details View: Staff can click on package in Browse Packages to view: component breakdown (event tickets with quantities, marketing opportunities, flex credit balance). View also shows redemption history: which partner account is assigned, which benefits have been used, remaining balance, and usage dates.

Partner Account Tracking: In partner company profile, section shows assigned packages and redemption status. Example: "Gold Package assigned 2024-01-15. Used: 1 of 2 VIP tickets, $1,200 of $5,000 flex credits. Expires: 2025-01-15."

Benefit Cutoff & Expiration: System automatically marks benefits as expired on Benefit Cutoff Date. Expired benefits are visible but not redeemable. Reports can filter by expired/active status.

QA Focus for How It Works

Test both the creation workflow (staff creating packages) and the consumption workflow (partners redeeming benefits). Pay attention to: (1) component independence—removing an event ticket doesn't affect flex credits, (2) balance calculations—flex credit usage is immediately reflected, (3) expiration logic—benefits become unavailable after cutoff date, (4) permission boundaries—partners can only see/redeem their assigned packages.

Glossary

Key terminology for partnership packages. Ensure consistent terminology across UI, help text, error messages, and documentation.

Partnership Package

A bundled set of benefits (event tickets, marketing opportunities, flex credits) created by chapter staff and assigned to partner accounts. Reusable template that can be assigned to multiple partners or customized per partner.

Package Cost/Amount

The price or contractual value of the partnership package. Currency field (e.g., $5,000). Used for accounting and partnership tracking, not for automated fee calculations.

Flex Credits

A dollar-value pool within a package that partners can spend on event tickets or marketing opportunities. Supports partial redemption. Example: $5,000 flex credits allow partner to purchase tickets/services within that budget. Similar to gift cards or coupon codes.

Event Ticket

A specific quantity of admission to an event (VIP, general admission, table seating) included in the package. Tickets can reference existing events or placeholder events awaiting creation. Marked "Staff Only" or private to restrict public access.

Marketing Opportunity

A branded benefit (logo placement, social media feature, email mention, booth space) included in the package. Managed independently from events. Optional Cost/Value field enables flex credit valuation.

Benefit Cutoff Date

Optional calendar date when all package benefits (tickets, marketing opportunities, flex credits) automatically expire. After this date, benefits are read-only and cannot be redeemed. If not set, benefits do not expire.

Excluded Events

List of events where flex credits cannot be applied. More flexible than selecting included events. Accounts for future events not yet created. Example: Premium VIP conference event is excluded, so partners must use specific tickets, not flex credits.

Active/Inactive Status

Toggle status of package. Active packages are available for assignment to partners and benefit redemption. Inactive packages are archived and unavailable for new assignments (existing redemptions unaffected).

Package Assignment

Action of linking a package to a partner account. After assignment, partner can begin redeeming included benefits. Chapter staff assigns packages; partners cannot self-assign.

Redemption

Act of using a package benefit. Examples: applying an included event ticket during registration, claiming a marketing opportunity, spending flex credits toward event cost. Each redemption is tracked with date, amount, and user.

QA Focus for Glossary

Ensure terminology is consistent across all UI surfaces: labels, help text, error messages, confirmation dialogs, and reports. If staff sees "Flex Credits" in one place and "Flexible Spending Credits" in another, QA should flag as inconsistency. Partner communication materials should use accessible language that doesn't require glossary lookup.

Test Strategy

Comprehensive testing approach for partnership packages, covering CRUD operations, component configuration, benefit redemption, and integration with event registration and member portal.
Create & Browse Packages

Create Package Metadata: Test creation with all required fields (name, amount) and optional fields (description, cutoff date). Verify validation: currency field rejects non-numeric input, name field enforces max length, cutoff date picker displays calendar. Verify package appears in Browse Packages immediately.

Browse Packages Columns: Verify all columns display: Package Name, Package Amount, Description, Benefit Cutoff Date, Active/Inactive status. Test sorting (by name, amount, date) and basic filtering (by status: active/inactive).

Package Status Toggle: Create package as Active. Verify status is toggleable to Inactive. Inactive packages should still be browsable but unavailable for new assignments. Verify toggle persists.

Duplicate/Template Packages: Test creating similar packages (e.g., "Gold Package 2024" and "Gold Package 2025") with same component structure. Verify each is independent and modifications to one do not affect the other.

🎫 Event Tickets Configuration

Add Existing Event Tickets: Test selecting existing event from dropdown (type-ahead search). For selected event, verify available ticket types are displayed. Select ticket type and set quantity (e.g., 2 VIP tickets). Verify line is added to package component list. Test with multiple events and ticket types in same package.

Add Placeholder Event: Test "Add Future Event" flow. Enter event name and description. Verify placeholder event is created with temporary ID. Later, link placeholder to actual event via lookup. Verify tickets remain assigned to event after linking.

Edit Ticket Lines: Add a ticket to package. Click "Manage Benefits" and edit: change quantity (e.g., 2 → 3). Verify change persists. Test deleting ticket line (if no redemptions exist). Verify deletion confirmation dialog appears.

Redemption Restrictions: Test that deleted or inactive events cannot be added to new packages. Test that event tickets default to "Staff Only" or private availability, restricting general public access.

📢 Marketing Opportunities Configuration

Add Marketing Opportunity: Test adding opportunity with name (required) and description (optional). Add opportunity without cost/value field—verify it's addable (for non-quantifiable benefits). Add opportunity with cost/value (e.g., $1,500 Logo placement)—verify value is stored correctly.

Edit Opportunity: Add opportunity to package. Click "Manage Benefits" and edit name, description, or cost/value. Verify changes persist. Test that editing cost/value for future redemptions uses new value, but past redemptions are unchanged.

Delete Opportunity: Test deleting opportunity with no redemptions (should succeed with confirmation). Test deleting opportunity with existing redemptions (should fail with message "Cannot delete—already redeemed by partners").

Multiple Opportunities per Package: Add 3-5 different marketing opportunities to same package. Verify all are displayed and independently manageable.

💰 Flex Credits Configuration

Set Credit Amount: Test adding flex credits to package with various amounts ($1,000, $5,000, $10,000). Verify currency validation (rejects negative, non-numeric). Verify amount is displayed in package summary.

Excluded Events Configuration: Test adding excluded events. Select 1-3 events from dropdown. Verify excluded event list is displayed. Test that flex credits cannot be applied to excluded events during registration.

Edit Excluded Events: Modify excluded event list (add/remove events). Verify changes apply going forward. Test that changing exclusion list does NOT affect past redemptions (partner who already used $1,000 credits on non-excluded event is unaffected).

No Exclusions (All Events Available): Test creating package with flex credits and NO excluded events. Verify flex credits can be applied to any event during registration.

Flex Credit with No Marketing Cost/Value: Create marketing opportunity with no cost/value field. Add flex credits to package. Test that flex credits can still be applied to event tickets, but not to cost-less marketing opportunities.

🔗 Package Assignment and Account Linking

Assign Package to Partner Account: Test clicking "Assign Package to Account" on package row. Type-ahead search displays partner company list. Select company. Verify package is now linked to that account. Verify link is visible in package details and in partner account profile.

Multiple Packages per Account: Test assigning 2-3 different packages to same partner account. Verify partner can see all assigned packages in their portal/profile. Verify benefits from each package are tracked independently.

Reassign Package: Assign package to Company A. Later, reassign same package to Company B. Verify reassignment succeeds, package is removed from Company A's view, and associated with Company B. (Or if system supports multiple accounts per package, verify both accounts see it.)

Unassign Package: If system supports unlinking, test unassigning package from account (only if no active redemptions). Verify package is no longer visible to partner. Verify package is still in Browse Packages list for staff.

🎫 Event Registration Integration

Apply Included Event Tickets: As partner registrant for event, verify registration UI displays "Your partnership includes X tickets. Apply?" Test clicking Yes: ticket is applied, checkout cost reduces accordingly. Test clicking Save for Later: ticket is not applied, but remains available. Test applying subset of available tickets (e.g., 2 available, apply 1, save 1 for later).

Flex Credit Application at Checkout: Verify registration checkout displays flex credit balance and current event cost. Test applying full credit (e.g., event costs $2,000, apply $2,000 from $5,000 balance; balance becomes $3,000). Test applying partial credit (apply $1,500 of $2,000 cost; remaining $500 due via normal payment). Test rejecting credit (Do Not Apply button).

Excluded Event Restrictions: Add excluded event to flex credit configuration. Register partner for excluded event. Verify flex credit offer does NOT appear at checkout. Test that included event tickets ARE still available for excluded events (flex credits excluded, but tickets not).

Chapter Staff Registration on Behalf: Chapter staff registers partner and applies benefits on their behalf. Verify same UI and behavior as partner self-service. Verify staff can see remaining balance and guide partner on benefit usage.

Benefit Cutoff Date and Expiration

Set Cutoff Date: Create package with Benefit Cutoff Date 30 days in future. Verify date is stored and displayed. Benefits should be fully redeemable until cutoff date.

Expiration Logic: Wait (or mock system date) until cutoff date passes. Verify: (1) partner can no longer see benefits in redemption UI, (2) attempting redemption returns error "Benefits have expired," (3) package is marked as expired in admin view, (4) reporting shows expired status.

Pre-Cutoff Partial Usage: Before cutoff date, partner uses some benefits (e.g., 1 of 2 event tickets). On/after cutoff date, verify remaining benefits expire and cannot be used. Verify used benefits are credited to partner account (history shows redemption).

No Cutoff Date (Never Expires): Create package without setting Benefit Cutoff Date. Verify benefits remain redeemable indefinitely (system default behavior). Verify no expiration logic is triggered.

🔐 Permissions and Access Control

Chapter Staff L1 (View Only): Verify L1 staff can browse packages and view details, but cannot create, edit, or delete. Buttons for Add, Edit, Delete are disabled or hidden.

Chapter Staff L2 (View & Edit): Verify L2 staff can create and edit packages. Verify L2 cannot delete packages (delete button disabled/hidden). Verify L2 can assign packages to accounts.

Chapter Staff L3 (Full Admin): Verify L3 staff can create, edit, and delete packages. Delete action requires confirmation dialog. Verify deletion restrictions: cannot delete package with active redemptions (error message displayed).

Partner Portal Access: Partner users can view their assigned packages and redemption status. Cannot create, edit, or delete packages. Verify data isolation: Partner A cannot see Partner B's assigned packages or redemption history.

QA Focus for Test Strategy

Approach testing as layered: (1) Functional—do packages create/save correctly with all component types? (2) Integration—do benefits appear in event registration and partner portal? (3) Business logic—do flex credits calculate correctly, do excluded events work, do benefits expire on schedule? (4) Permissions—who can create/edit/delete/redeem what? (5) Edge cases—what happens with zero benefits, unlimited benefits, simultaneous redemptions? Prioritize end-to-end flows: create package → assign to partner → register with benefits → verify tracking.

Business Rules & Gotchas

The 12 critical business rules that govern partnership package behavior. These guardrails ensure consistency, predictability, and prevent unintended benefit loss or overage.
📍 Rule 1: Package Consists of Three Independent Components

Event Tickets, Marketing Opportunities, and Flex Credits are modular. A package can include any combination: tickets only, flex credits only, all three, or none. Removing/modifying one component does not affect others. A partner may redeem tickets and flex credits simultaneously for a single event.

✏️ Rule 2: Package Metadata Fields

Required: Package Name, Package Amount/Cost. Optional: Description, Benefit Cutoff Date, Status (default: Active). All fields are editable after creation. Editing does not affect existing redemptions (historical record preserved).

🎫 Rule 3: Event Tickets Can Be Existing or Placeholder

Tickets can reference existing events OR be created as placeholders during package creation. Placeholder events can be linked to actual events later. Default availability setting: "Staff Only" or Private (restricts general public access). Quantity field specifies how many tickets of that type are included.

📢 Rule 4: Marketing Opportunities Are Independently Managed

Each marketing opportunity has name, optional description, and optional cost/value field. Cost/value is required only if opportunity will be redeemable via flex credits. Marketing opportunities cannot be deleted if redemptions exist (error: "Cannot delete—already redeemed").

💰 Rule 5: Flex Credits Support Partial Usage

Partner may apply less than the full balance to a single event or benefit. Example: $5,000 balance, apply $2,000 to event registration, $1,500 to marketing opportunity, reserve $1,500 for future use. System tracks remaining balance after each redemption.

🚫 Rule 6: Excluded Events Prevent Flex Credit Application

Excluded events list specifies events where flex credits cannot be applied. More flexible than "included events" because it accommodates future events not yet created. Event-specific tickets are NOT excluded (partner can still use included event tickets on excluded events). Only flex credits are blocked.

Rule 7: Benefit Cutoff Date Is Optional

If set, all benefits (tickets, marketing opportunities, flex credits) expire on that date and become non-redeemable. System automatically enforces expiration: attempting redemption after cutoff date returns "Benefits expired" error. If not set, benefits do not expire (perpetual validity).

🔗 Rule 8: Package Assignment Is at Account Level

Staff assigns packages to partner accounts (company records). All users within that account can redeem benefits from assigned packages. Package cannot be assigned to individuals; assignment is always to company account. One package can be assigned to multiple accounts if business allows.

☑️ Rule 9: Benefit Usage Is Tracked and Non-Reversible

Once a benefit is redeemed (ticket applied, flex credit spent, marketing opportunity claimed), the redemption is recorded with date and user. System does not allow manual reversal via UI; staff must contact admin for credit reversals (rare edge case). Redemption history is auditable.

🔐 Rule 10: Partner Visibility in Portal Is Controlled by Admin

Staff controls whether packages appear in partner portal. Setting during assignment or package creation: "Visible to Partner" (yes/no). If yes, partner can view assigned package and redemption status in their portal. If no, package is hidden from partner view but benefits can still be redeemed (staff-only experience).

Rule 11: Package Deletion Has Restrictions

L3 staff can delete packages, but only if: (1) package has no active redemptions, (2) package is not currently assigned to any account, (3) confirmation dialog is displayed. Deleting a package cascades to delete all associated component records (event tickets, marketing opportunities, flex credit configuration). Deletion is permanent.

🔄 Rule 12: Package Must Have at Least One Component

A valid package includes at least one of: event tickets, marketing opportunities, or flex credits. Attempting to save package with zero components returns validation error: "Package must include at least one benefit component." A package cannot be empty.

QA Focus for Business Rules & Gotchas

These 12 rules are the non-negotiable boundaries of the system. Test each rule directly and in combination. For example, Rule 5 (partial usage) + Rule 6 (excluded events) + Rule 7 (cutoff date) together: Create package with $5,000 flex credits, exclude Event X, set cutoff date 7 days from now. Partner applies $1,000 on Day 2, tries to apply $2,000 on Event X (should fail), applies $1,500 on Day 6 to different event, waits until Day 8, tries to apply remainder (should fail—expired). Each rule-combination tests system correctness.

Scenario Thinking

What-if scenarios that test system resilience, edge cases, and real-world partnership situations. Use these scenarios to identify gaps and confirm expected behavior under complex conditions.
🤔 Scenario 1: Event Deleted After Being Added to Package

Setup: Create package with ticket to Event A. Assign package to Partner X.

Action: Admin deletes Event A from system.

Expected Behavior: (1) Package remains valid and editable. (2) Event A ticket is marked as invalid/orphaned in package (UI shows red warning or placeholder). (3) Partner can still see package but cannot redeem the now-invalid ticket. (4) Staff can edit package to remove orphaned ticket or link to replacement event. (5) System prevents partner from applying orphaned ticket during registration (error: "This benefit is no longer available").

Test Focus: Verify system gracefully handles orphaned events and doesn't crash or corrupt package state.

🤔 Scenario 2: Flex Credits Expire Mid-Registration

Setup: Create package with $5,000 flex credits, cutoff date = tomorrow. Assign to Partner X.

Action: Partner starts event registration. System date advances to after cutoff (simulated). Partner reaches checkout.

Expected Behavior: (1) On checkout, flex credit offer is withdrawn (system checks expiration). (2) Partner sees message: "Partnership flex credits have expired." (3) Partner must pay full event cost via normal payment. (4) If partner had already selected credits at cart stage, they are automatically removed before checkout with explanation.

Test Focus: Verify cutoff date is enforced at all redemption points, not just at checkout start.

🤔 Scenario 3: Partner Reassigned to Different Account

Setup: Package assigned to Company A. Partner X (user from Company A) has used 50% of flex credits. Partner X's employment record is updated; they are now associated with Company B.

Action: System processes association change.

Expected Behavior: (1) Partner X can no longer redeem benefits from Company A's package. (2) Remaining balance in Company A's package remains (for other users in Company A). (3) Company B's packages (if any) are now available to Partner X. (4) No "double redemption" occurs—credits aren't copied or duplicated. (5) Audit trail shows partner reassignment and balance snapshot at time of change.

Test Focus: Verify user/account association changes don't create balance inconsistencies or cross-contamination.

🤔 Scenario 4: Multiple Simultaneous Redemptions

Setup: Package with $5,000 flex credits assigned to Company A. User 1 and User 2 both from Company A, both begin event registration simultaneously.

Action: User 1 applies $2,500 to Event X. At same moment, User 2 applies $3,000 to Event Y.

Expected Behavior: (1) System handles concurrent requests without race condition. (2) First request (whichever completes first) applies credits, reduces balance to $2,500. (3) Second request checks available balance, finds only $2,500 available. User 2 either: (a) gets error "Insufficient credits, only $2,500 available," or (b) system prompts to apply partial credit, or (c) system queues request. (4) Final balance is either $0 (if both succeed) or $2,500 (if second fails). (5) No negative balance or overage.

Test Focus: Verify concurrency handling and balance consistency under simultaneous redemptions.

🤔 Scenario 5: Edit Marketing Opportunity Cost/Value Mid-Redemption Cycle

Setup: Package with marketing opportunity "Logo Placement" valued at $1,500. $5,000 flex credits. Assigned to Partner X.

Action: Partner X redeems $1,500 in flex credits for Logo Placement. Next day, staff changes Logo Placement cost to $2,000.

Expected Behavior: (1) Partner X's historical redemption (already completed) shows original cost $1,500. (2) If Partner Y attempts redemption after the price change, they pay $2,000. (3) No retroactive billing to Partner X. (4) System clearly distinguishes past and future pricing.

Test Focus: Verify that cost/value changes do not affect past redemptions, only future ones.

🤔 Scenario 6: Partner Tries to Redeem Deleted Benefit

Setup: Package with 2 VIP event tickets assigned to Partner X. Partner applies 1 ticket during early registration.

Action: Staff edits package and deletes the VIP ticket line (no redemptions on that line yet).

Expected Behavior: (1) Remaining 1 applied ticket is honored (already redeemed). (2) Any future attempt to apply second ticket fails with error "This benefit is no longer available." (3) Partner sees in their package view: "1 ticket applied (honored), 1 ticket no longer available."

Test Focus: Verify that deletions honor past redemptions but block future ones.

🤔 Scenario 7: Package Reactivated After Deactivation

Setup: Package assigned to Partner X. Package status is toggled to Inactive (for business reasons).

Action: Later, staff reactivates the package (toggle back to Active).

Expected Behavior: (1) Package becomes available for redemption again. (2) Partner can see package in portal/registration UI. (3) All benefits (used and unused) are preserved—deactivation/reactivation cycle does not clear balances. (4) Cutoff date is still enforced (if expiration already passed, benefits remain expired even after reactivation).

Test Focus: Verify that status toggling is non-destructive and reversible.

🤔 Scenario 8: Zero-Balance Flex Credits Edge Case

Setup: Package with $500 flex credits assigned to Partner X. Partner X uses all $500 during first event registration (balance now $0).

Action: Partner X registers for second event later. System checks flex credit balance during checkout.

Expected Behavior: (1) System displays: "You have $0 partnership flex credits remaining." (2) Flex credit offer is not presented (no credits to apply). (3) Partner must pay full event cost via normal payment. (4) System does not present broken UI (empty input, "Apply $0 credits" button, etc.); instead, flex credit section is hidden or marked as unavailable.

Test Focus: Verify zero-balance handling is graceful and user-friendly.

QA Focus for Scenario Thinking

These scenarios reflect real-world partnership lifecycle events. Use them to brainstorm edge cases your team might not have considered. For each scenario, map expected behavior, then test it. Document any deviations as bugs. Discuss with product team whether unexpected behavior is acceptable or requires fixing. Scenarios help identify gaps in business rule enforcement.

Regression Checklists

Focused checklists for regression testing after code changes. Use these to quickly verify that critical workflows remain functional and no regressions are introduced.
📋 Regression Checklist: CRUD Operations
  • Create package with all required fields (name, amount) → package appears in Browse list
  • Create package with optional fields (description, cutoff date) → fields are persisted and displayed
  • Edit package name and amount → changes persist and reflect in Browse list
  • Edit package status (Active → Inactive) → status toggles correctly
  • Browse packages list shows all columns: Name, Amount, Description, Cutoff Date, Status
  • Sort Browse list by name (ascending/descending) → order is correct
  • Sort Browse list by amount, date → order is correct
  • Filter Browse list by Active/Inactive status → only matching packages displayed
  • Delete package with no redemptions → confirmation dialog appears, deletion succeeds
  • Delete package with redemptions → system prevents deletion, error message displayed
📋 Regression Checklist: Component Configuration
  • Add existing event ticket to package → ticket line created with event name, ticket type, quantity
  • Add placeholder event to package → placeholder created, can be linked to real event later
  • Edit event ticket quantity (e.g., 2 → 3) → quantity updates in package component
  • Delete event ticket from package (no redemptions) → ticket removed, component updates
  • Add marketing opportunity with name only (no cost/value) → opportunity created successfully
  • Add marketing opportunity with name and cost/value → both fields persisted
  • Edit marketing opportunity name and cost → changes reflected immediately
  • Delete marketing opportunity (no redemptions) → deletion succeeds with confirmation
  • Add flex credits with dollar amount → amount validated (no negative, non-numeric) and stored
  • Add excluded events to flex credit config → excluded event list populated and displayed
  • Modify excluded events list (add/remove events) → changes apply to future redemptions
  • Package with no components → validation error "Package must include at least one benefit"
  • Package with all three components → all components visible and independently manageable
📋 Regression Checklist: Assignment & Portal
  • Assign package to partner account → account linked, package visible in account profile
  • Partner can view assigned package in portal (if visibility enabled) → package and benefits displayed
  • Partner cannot view assigned package in portal (if visibility disabled) → package hidden from partner view
  • Multiple packages assigned to same partner → all packages visible in portal with independent balances
  • Reassign package to different partner → original partner loses access, new partner gains access
  • Package details show redemption history (date, amount, user) → audit trail populated correctly
  • Partner portal shows remaining balance for flex credits → balance calculation accurate
  • Partner cannot modify package or component settings → edit buttons disabled in portal
📋 Regression Checklist: Benefit Redemption (Event Registration)
  • Registrant applies 1 included event ticket → ticket applied, removed from package balance
  • Registrant applies multiple included tickets (if available) → each application deducts from balance
  • Registrant selects "Save for Later" instead of applying → ticket not deducted, available for future events
  • Registrant applies flex credits at checkout → credits applied, balance updated immediately
  • Registrant applies partial flex credits (e.g., $1,500 of $3,000 available) → partial application succeeds, balance reflects remainder
  • Registrant for excluded event tries to apply flex credits → flex credit offer does NOT appear; tickets still available
  • Registrant after benefit cutoff date tries to redeem → "Benefits have expired" error displayed
  • Chapter staff registers partner on their behalf and applies benefits → same UI and behavior as self-service
  • Zero flex credit balance → flex credit offer is not presented; section is hidden or marked unavailable
  • Package with no event tickets (marketing + flex only) → event registration works normally; flex credits available
📋 Regression Checklist: Permissions & Access
  • L1 staff views package details → no edit/delete buttons visible
  • L2 staff creates package → package successfully created
  • L2 staff edits package → changes persist
  • L2 staff attempts to delete package → delete button disabled or hidden
  • L3 staff creates, edits, deletes packages → all actions succeed with appropriate confirmations
  • L3 staff deletes package → confirmation modal displayed before deletion
  • Partner portal user views only their assigned packages → no cross-partner data leakage
  • Partner portal user cannot create/edit/delete packages → relevant buttons disabled/hidden
  • Non-partner user (no package assignment) cannot see packages in portal → section hidden or message displayed
📋 Regression Checklist: Expiration & Dates
  • Create package with Benefit Cutoff Date 7 days in future → date stored and displayed
  • Redeem benefits before cutoff date → redemption succeeds
  • Redeem benefits on cutoff date → redemption succeeds (date is inclusive? verify business rule)
  • Redeem benefits after cutoff date → "Benefits have expired" error displayed, redemption blocked
  • Create package without cutoff date → benefits remain redeemable indefinitely
  • Portal displays "Expires: [cutoff date]" for assigned package → expiration date visible to partner
  • Package status shows "Expired" in admin view after cutoff date passes → status updated correctly
QA Focus for Regression Checklists

Run these checklists after every code change to partnership packages module. Create a test plan from these checklists before each release cycle. Document pass/fail for each item. If an item fails, investigate root cause, file bug, and re-test after fix. Use checklists to catch regressions early and build confidence that core workflows remain unbroken.

Environment & Data Setup

Prerequisites, test data requirements, and environment configuration needed to execute the Partnership Packages testing plan effectively.
🎯 Test Database Requirements

Event Master Data: Create at least 8-10 test events with varied properties: conference, workshop, training, networking, dinner. Include mix of public and "Staff Only" availability events. Ensure at least 3 events have associated ticket types (VIP, general admission, early bird). Some events should span multiple days.

Partner Company Accounts: Create 3-5 test partner company records (active ABC members). Include diverse company sizes and industries. Ensure each partner has associated portal user account for testing partner-side visibility.

Marketing Opportunity Master Data: Create 5-7 reusable marketing opportunities: logo placement (cost: $1,500), social media feature (cost: $500), email newsletter (cost: $800), booth space (cost: $2,000), custom advertising (cost: $3,000), branded merchandise (cost: $250). Include opportunities both with and without cost/value fields.

Test Packages (Pre-created): Create 2-3 reference packages for regression testing: (1) "Gold Package 2024" with event tickets + marketing opportunities + $5,000 flex credits, (2) "Silver Package 2024" with tickets + $2,000 flex credits only, (3) "Platinum Package 2024" with all components and high values. Use as baselines for future comparisons.

👤 User Accounts & Roles

Chapter Staff L1 Account: User with Partnership Packages view-only permission. Use for testing permission boundaries and ensuring L1 cannot edit/delete.

Chapter Staff L2 Account: User with create/edit permission (no delete). Use for testing standard package management workflows.

Chapter Staff L3 Account: User with full admin access (create/edit/delete). Use for testing delete workflows, force-delete scenarios.

Partner Portal User (Company 1): User associated with test partner company. Used to verify partner visibility settings and redemption experience. Ensure account can register for events.

Partner Portal User (Company 2): Second partner portal user (different company) for testing cross-partner data isolation and multiple package assignments.

Event Admin Account: User with full event management permissions. Use for creating/modifying test events, managing event ticket types.

⚙️ System Configuration & Settings

Partnership Packages Module Status: Verify module is enabled in test environment. Check that menu item appears in chapter site admin navigation under appropriate section (e.g., Contacts or Partnerships).

Event Registration Integration: Verify event registration forms include partnership package benefit application UI (event tickets, flex credits). Test in both chapter staff registration flow and portal self-service flow.

Partner Portal Configuration: Verify partner portal displays "My Partnership Packages" section (if enabled). Confirm portal users can view assigned packages and redemption history.

Email Notifications (Optional): If system sends emails for package assignment or benefit redemption, verify email templates are configured and email sending is functional in test environment.

Date/Time Settings: Ensure test environment date/time can be manipulated (for testing cutoff date expiration). Set system clock to known value for reproducible testing.

🛠️ Setup Checklist: Step-by-Step
  • Verify Partnership Packages module is enabled in test environment
  • Create 8-10 test events (mix of event types, ticket types, availability settings)
  • Create 5-7 marketing opportunities (mix of cost/no-cost)
  • Create 3-5 test partner company accounts (ABC member status)
  • Create chapter staff user accounts (L1, L2, L3 permission levels)
  • Create partner portal user accounts (one per test partner company)
  • Assign partner portal users to respective company accounts
  • Create 2-3 reference test packages (Gold, Silver, Platinum) for baseline regression testing
  • Assign test packages to test partner accounts
  • Verify event registration UI displays package benefit options
  • Verify partner portal displays "My Partnership Packages" section
  • Test date/time manipulation (set system clock to specific date for cutoff date testing)
  • Run smoke test: create new package → assign to partner → register partner for event → apply benefits → verify balance updates
  • Document test data IDs and account credentials in shared test spreadsheet
🔄 Test Data Refresh & Maintenance

Between Test Cycles: After completing a full test cycle, refresh test packages and redemption records to ensure clean state for next cycle. Keep reference packages (Gold/Silver/Platinum) unchanged; these serve as baseline comparisons.

Between Releases: Before each release, verify test event data is current (no deleted/archived events). Verify partner company accounts are still Active. Verify user accounts have correct permission levels. Run smoke test to confirm basic functionality before detailed regression testing.

Baseline Data Preservation: Maintain a "frozen" baseline of 2-3 packages and associated redemption history. Use for regression comparisons—if behavior changes unexpectedly, compare against baseline to isolate when change occurred.

Edge Case Data: Maintain separate "throwaway" test data for destructive testing (e.g., test packages you'll delete, temporary partners for permission testing). Do not modify or reuse baseline packages for edge case testing.

📝 Testing Tools & Access

Browser & Automation: Test on latest versions of Chrome, Firefox, Safari (if applicable). Verify UI is responsive on desktop and tablet sizes (mobile testing secondary). Use browser dev tools to check console for JavaScript errors.

Database Access: Ensure QA has read-only access to test database for verification. Use database tools to validate data persistence (e.g., verify package record created with correct values, redemption record logged with timestamp).

Admin Backend Tools: If chapter staff have admin backend UI, verify QA can navigate package management, view reports, force-delete test data for cleanup.

Jira Integration (Optional): Link test results to Jira tickets (ABC-1046: CRUD Partnership Packages, ABC-1044: Use Partnership Package to Register for Event, etc.). Document blockers and findings directly in ticket comments.

QA Focus for Environment & Data Setup

Invest time upfront in test environment preparation. A well-configured test environment and clean test data sets prevent false failures and wasted debugging time. Document every test data ID, account credential, and configuration setting. Share this documentation with team so future testers don't recreate baseline data. Before each test cycle, verify prerequisites are in place. If any prerequisite is missing or misconfigured, address it before starting test execution.